#~ Copyright Rene Rivera 2008
#~ Distributed under the Boost Software License, Version 1.0.
#~ (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)

import testing ;
import ../../config/checks/config : requires ;

project : requirements <warnings>all <toolset>gcc:<cxxflags>-Wextra ;

obj has_gmpxx : has_gmpxx.cpp ;
explicit has_gmpxx ;

test-suite integer
    :
        [ run integer_traits_test.cpp ]
        [ run integer_test.cpp : : : <toolset>gcc:<cxxflags>-Wno-long-long <toolset>darwin:<cxxflags>-Wno-long-long <toolset>sun:<cxxflags>"-Qoption ccfe -tmpldepth=128" ]
        [ run integer_mask_test.cpp ]
        [ run integer_log2_test.cpp ]
        [ run static_log2_test.cpp ]
        [ run static_min_max_test.cpp ]
        [ run extended_euclidean_test.cpp ]
        [ run mod_inverse_test.cpp ]
        [ compile integer_traits_include_test.cpp ]
        [ compile integer_include_test.cpp ]
        [ compile integer_mask_include_test.cpp ]
        [ compile static_log2_include_test.cpp ]
        [ compile static_min_max_include_test.cpp ]
        [ compile integer_fwd_include_test.cpp ]
        [ compile gcd_constexpr14_test.cpp ]
        [ compile gcd_noexcept_test.cpp ]
        [ compile-fail fail_int_exact.cpp ]
        [ compile-fail fail_int_fast.cpp ]
        [ compile-fail fail_int_least.cpp ]
        [ compile-fail fail_uint_exact.cpp ]
        [ compile-fail fail_uint_fast.cpp ]
        [ compile-fail fail_uint_least.cpp ]
        [ compile-fail fail_uint_65.cpp ]
        [ run common_factor_test.cpp : : : [ check-target-builds has_gmpxx "Checking for gmpxx.h" : <define>BOOST_INTEGER_HAS_GMPXX_H=1 <linkflags>-lgmp <linkflags>-lgmpxx ] ]
    ;
